package com.example.graphic.AI;

import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import java.util.List;
import java.util.ArrayList;

/**
 * 分类响应实体
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class ClassifyResponse implements AIResponse {
    
    /** 分类结果数据 - 包含两个列表的数组 */
    private List<List<String>> data;
    
    /** 响应消息 */
    private String message;
    
    /** 错误码 */
    private String code;
    
    @Override
    public boolean isSuccess() {
        // 如果data不为空且包含标签，则认为请求成功
        return data != null && !data.isEmpty();
    }
    
    /**
     * 获取所有标签
     * 将data中的两个列表合并，返回所有标签
     * @return 所有标签的列表
     */
    public List<String> getAllTags() {
        List<String> allTags = new ArrayList<>();
        if (data != null) {
            for (List<String> tagList : data) {
                if (tagList != null) {
                    allTags.addAll(tagList);
                }
            }
        }
        return allTags;
    }
    
    /**
     * 获取第一组标签
     * @return 第一组标签列表，如果不存在则返回空列表
     */
    public List<String> getFirstTagGroup() {
        if (data != null && !data.isEmpty() && data.get(0) != null) {
            return new ArrayList<>(data.get(0));
        }
        return new ArrayList<>();
    }
    
    /**
     * 获取第二组标签
     * @return 第二组标签列表，如果不存在则返回空列表
     */
    public List<String> getSecondTagGroup() {
        if (data != null && data.size() > 1 && data.get(1) != null) {
            return new ArrayList<>(data.get(1));
        }
        return new ArrayList<>();
    }
}